perm filename EFTPSB.MAC[11,HE] blob
sn#656306 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979
;** This may have bugs, the last few lines used to have garbage there!
.TITLE RT11
.CSECT GLOBAL
G=.
.=G+220.+220.
.WORD GETSTR
.WORD WRTSTR
.WORD OPEN
.WORD CLOSED
.WORD READD
.WORD WRITED
.CSECT
ERRBYT=52
.MCALL .READW,.WRITW,.CLOSE,.PRINT,.GTLIN,.FETCH,.LOOKUP
.MCALL .ENTER,.CSISPC
GETSTR::ASL R1
MOV R0,R5
MOV R1,R4
.GTLIN #STORAG
MOV #STORAG,R1
MOV R1,R2
1$: TSTB (R1)+
BNE 1$
SUB R2,R1
DEC R1
MOV R1,TEMP
MOVB TEMP,(R4)+
2$: MOVB (R2)+,(R4)+
SOB R1,2$
MOV R5,R0
ADD #2,(SP)
RTS PC
WRTSTR::ASL R1
MOV R0,R5
CLR R2
MOV #STORAG,R2
MOVB (R1)+,R3
1$: MOVB (R1)+,(R2)+
SOB R3,1$
MOVB #0,(R2)
.PRINT #STORAG
MOV R5,R0
ADD #2,(SP)
RTS PC
WRITED::MOV R0,R5
ASL R2
.WRITW #AREA,R1,R2,R3,R4
BCS ERR
MOV #-1,R1
BR EXIT
ERR: MOV @#ERRBYT,R1
EXIT: MOV R5,R0
ADD #2,(SP)
RTS PC
READD:: MOV R0,R5
ASL R2
MUL #256.,R3
.READW #AREA,R1,R2,R3,R4
BCS ERR
MOV #-1,R1
BR EXIT1
ERR1: MOV @#ERRBYT,R1
EXIT1: MOV R5,R0
ADD #2,(SP)
RTS PC
CLOSED::MOV R0,R5
.CLOSE R1
MOV R5,R0
ADD #2,(SP)
RTS PC
OPEN:: ASL R3
MOV R0,R5
ASL R2
MOV SP,R4
TST R2
BEQ 1$
INC R2
1$: .CSISPC #AREA,#DEXT,R2
MOV R4,SP
BCS CSIERR
.FETCH R3,#AREA+36
BCS FETERR
TST R1
BGT WRT
.LOOKUP #AREA,CHAN,#AREA+36
BCS LKUPER
TST R1
BEQ FLEXST
MOV CHAN,R1
INC CHAN
BIC #177760,CHAN
BR EXIT2
LKUPER: TSTB @#ERRBYT
BEQ 1$
TST R1
BEQ WRT
1$: MOV #-1,R1
BR EXIT2
WRT: .ENTER #AREA,CHAN,#AREA+36,#-1
BCC 1$
MOV #-1,R1
BR EXIT2
1$: MOV CHAN,R1
INC CHAN
BIC #177760,CHAN
BR EXIT2
CSIERR: MOV #-4,R1
BR EXIT2
FETERR: MOV #-3,R1
BR EXIT2
FLEXST: MOV #-2,R1
.CLOSE CHAN
EXIT2: MOV R5,R0
ADD #2,(SP)
RTS PC
AREA: .BLKW 39.
CHAN: .WORD 0
DEXT: .WORD 0,0,0,0
STORAG: .BLKW 41.
TEMP: .WORD 0
.END